home *** CD-ROM | disk | FTP | other *** search
/ Business Assistant / Business Assistant.iso / home / bushome / reports.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1984-10-28  |  10.3 KB  |  131 lines

  1. 10  '  BUDGET MANAGEMENT - REPORT
  2. 100  CLEAR (3600) : DEFINT I - N
  3. 110  M1 = 61 : M2 = 50 : M3 = 25 : M4 = 20 : M5 = M4
  4. 120  AD$ = CHR$ (25) : EL$ = CHR$ (30) : CU$ = CHR$ (27) : BL$ = CHR$ (29)
  5. 130  DIM A1%(M1),A2$(M1),A3#(M1),A4#(M1),A6%(M1)
  6. 140  DIM C1%(M2),C2%(M2),C3$(M2),C4(M2),C5%(M2),C6%(M2)
  7. 150  DIM E1%(M3),E2$(M3),E3(M3),E4%(M3)
  8. 160  DIM D1%(M4),D2$(M4),D3(M4)
  9. 170  DIM S1%(M5),S2$(M5),S3(M5)
  10. 190  ON ERROR GOTO 200 : DK = 1 : I = INSTR ("A","A") : GOTO 210
  11. 200  DK = 0 : RESUME 210
  12. 210  ON ERROR GOTO 0
  13. 220  CLS : PRINT : PRINT TAB( 10)"BUDGET MANAGEMENT - REPORT " : PRINT
  14. 230  IF DT<10100 THEN PRINT "ENTER TODAY'S DATE (MM/DD/YY)";:X%=1:GOSUB 900:DT=VAL(DT$):X%=0:GOTO 220
  15. 240  PRINT TAB( 15)"0) STOP<UNK! {000A}>" TAB( 15)"1) READ-IN MORE DATA<UNK! {000A}>" TAB( 15)"2) REPORT
  16. 260  PRINT : J = 3 : INPUT "ENTER YOUR CHOICE";J
  17. 270  IF J = 0 THEN E = 99 : GOSUB 5000
  18. 275  IF (J-1)*(J-2)<>0 GOTO 220 ELSE IF F=0 AND J=2 THEN GOSUB 9500
  19. 280  ON J GOSUB 9500,2000 : GOTO 220
  20. 290  C$ = LEFT$ (C$ + " " + STRING$ (30,"."),30) : RETURN 
  21. 300  YN = - 1 : INPUT B$ : IF B$ = "" THEN B$ = C$
  22. 305  C$ = LEFT$ (B$,1) : IF C$ = "Y" THEN YN = 1 : RETURN :ELSE IF C$ = "N" THEN YN = 0 : RETURN 
  23. 310  PRINT "WAKE UP! PLEASE ANSWER YES(Y), OR NO(N)"; : IF F1 = 1 THEN RETURN : :ELSE 300
  24. 320  FOR DY = 1 TO 1000 : NEXT : RETURN 
  25. 400  CLS : PRINT TAB( 18); : ON J GOTO 401,402
  26. 401  PRINT "DATA INPUT" : RETURN 
  27. 402  PRINT "BUDGET REPORTER" : RETURN 
  28. 450  LO = 1 : H% = K : II = 0
  29. 460  IF LO = H% AND  NN < > ABS (A1%(LO)) RETURN 
  30. 470  MD = INT ((LO + H%) / 2) : IF NN = ABS (A1%(MD))II = MD : RETURN 
  31. 480  IF NN > ABS (A1%(MD)) THEN LO = MD + 1 : GOTO 460 : :ELSE H% = MD - 1 : GOTO 460
  32. 500  D1 = INT (D / 10000)
  33. 510  D2 = INT ((D - D1 * 10000) / 100) : D3 = D - 10000 * D1 - 100 * D2 : RETURN 
  34. 550  D1 = 0 : GOTO 510
  35. 900  INPUT B$
  36. 902  IF LEN (B$) < > 5 + 3 * X% THEN 930 :ELSE D1$ = LEFT$ (B$,2) : D2$ = MID$ (B$,4,2) : D3$ = RIGHT$ (B$,2) : IF VAL (D1$) < 1 OR VAL (D1$) > 12 THEN 930
  37. 905  IF VAL (D2$) < 1 OR VAL (D2$) > 31 THEN 930 :ELSE IF X% = 1 THEN IF VAL (D3$) < 0 THEN 930
  38. 910  DT$ = D1$ + D2$ : IF X% = 1 THEN DT$ = DT$ + D3$ : RETURN :ELSE RETURN 
  39. 930  DT$ = " " : RETURN 
  40. 950  PRINT USING "##/##"; INT (D / 100);D - 100 * INT (D / 100); : RETURN 
  41. 960  PRINT USING "##/##/##"; INT (DT / 10000); INT ((DT - 10000 * INT (DT / 10000)) / 100);DT - 100 * INT (DT / 100); : RETURN 
  42. 1000  A$ = INKEY$ : IF A$ < > "@" RETURN 
  43. 1010  AB = 1 : PRINT : PRINT TAB( 5)"* ABORTED *" : PRINT : IF IO = 2 LPRINT "*** ABORTED ***"
  44. 1020  IF IO = 1 THEN GOSUB 1500 : RETURN :ELSE RETURN 
  45. 1500  IF DK = 1 CMD "T"
  46. 1510  PRINT @980,"PRESS ENTER TO CONTINUE"; : INPUT A$
  47. 1520  IF DK = 1 THEN CMD "R" : RETURN :ELSE RETURN 
  48. 2000  GOSUB 400 : PRINT : PRINT TAB( 5)"REPORT WILL GO TO<UNK! {000A}><UNK! {000A}>" TAB( 15)"0) RETURN TO MENU<UNK! {000A}>" TAB( 15)"1) VIDEO DISPLAY<UNK! {000A}>" TAB( 15)"2) LINE PRINTER
  49. 2020  PRINT : PRINT "ENTER YOUR CHOICE"; : INPUT B$ : IO = VAL (B$) : IF IO = 0 OR B$ = "END" THEN RETURN 
  50. 2025  IF (IO - 1) * (IO - 2) < > 0 THEN 2000
  51. 2030  IF IO = 2 PRINT : INPUT "READY LINE PRINTER, THEN PRESS ENTER";A$
  52. 2040  GOSUB 400 : PRINT : PRINT TAB( 5)"TYPE OF REPORT IS<UNK! {000A}>" TAB( 15)"0) RETURN TO MENU<UNK! {000A}>" TAB( 15)"1) ACCOUNTS<UNK! {000A}>" TAB( 15)"2) OUTSTANDING CHECKS<UNK! {000A}>" TAB( 15)"3) CANCELLED CHECKS
  53. 2050  PP = 0 : PRINT TAB( 15)"4) CASH EXPENSES<UNK! {000A}>" TAB( 15)"5) DEPOSITS<UNK! {000A}>" TAB( 15)"6) SAVINGS
  54. 2080  PRINT : PRINT "ENTER YOUR CHOICE"; : INPUT B$ : TY = VAL (B$) : IF TY = 0 OR B$ = "END" THEN RETURN 
  55. 2085  IF TY < 1 OR TY > 6 THEN 2040
  56. 2090  GOSUB 400 : PRINT : PRINT TAB( 5)"SEARCHING FOR
  57. 2100  PRINT TAB( 15)"0) RETURN TO MENU<UNK! {000A}>" TAB( 15)"1) CANCELLED DATE<UNK! {000A}>" TAB( 15)"2) CHECK NUMBER<UNK! {000A}>" TAB( 15)"3) EXPENSES ACCOUNT<UNK! {000A}>" TAB( 15)"4) DATE ENTERED
  58. 2110  PRINT TAB( 15)"5) DESCRIPTION<UNK! {000A}>" TAB( 15)"6) AMOUNT<UNK! {000A}>" TAB( 15)"7) ALL" : LK = 0 : PRINT 
  59. 2130  PRINT "ENTER YOUR CHOICE"; : INPUT B$ : LK = VAL (B$) : IF B$ = "END" OR LK = 0 THEN RETURN 
  60. 2135  IF LK < 1 OR LK > 7 THEN 2090 :ELSE IF TY = 3 THEN 2190
  61. 2140  IF TY = 1 AND (LK = 3 OR LK > 4) THEN 2190
  62. 2150  IF TY = 2 AND LK > 1 THEN 2190
  63. 2160  IF TY = 4 AND LK > 2 THEN 2190
  64. 2170  IF (TY = 5 OR TY = 6) AND LK > 3 THEN 2190
  65. 2180  PRINT TAB( 5)"* BAD REQUEST *" : GOSUB 320 : GOTO 2040
  66. 2190  PRINT : IF LK = 5 PRINT "ENTER DESCRIPTION"; TAB( 32); : INPUT R$ : GOTO 2300
  67. 2200  ON LK GOTO 2201,2202,2203,2201,2300,2206,2300
  68. 2201  PRINT "<LOW DATE>, <HIGH DATE>"; : GOTO 2210
  69. 2202  PRINT "<LOW CHECK#>, <HIGH CHECK#>"; : GOTO 2210
  70. 2203  PRINT "<LOW ACCOUNT#>, <HIGH ACCOUNT#>"; : GOTO 2210
  71. 2206  PRINT "<LOW AMOUNT>, <HIGH AMOUNT>";
  72. 2210  PRINT TAB( 32); : IF LK < > 1 AND LK < > 4 THEN 2250
  73. 2220  INPUT B$,C$ : GOSUB 902 : IF DT$ = " " THEN 2270 :ELSE R1 = VAL (DT$)
  74. 2230  B$ = C$ : GOSUB 902 : IF DT$ = " " THEN 2270 :ELSE R2 = VAL (DT$) : GOTO 2260
  75. 2250  INPUT R1,R2
  76. 2260  IF R1 < = R2 THEN 2300
  77. 2270  PRINT TAB( 5)"* BAD RANGE *" : GOTO 2190
  78. 2300  IF IO = 1 THEN 2330
  79. 2305  IF PEEK (14312) < 128 THEN 2330
  80. 2320  PRINT : PRINT "LINE PRINTER NOT READY!!" : INPUT "TYPE 1 WHEN READY, OR 0 TO RETURN TO MENU";I : IF I = 0 THEN RETURN :ELSE 2305
  81. 2330  GOSUB 3000
  82. 2340  GOSUB 3500 : GOSUB 1000 : IF AB = 1 THEN 2040
  83. 2360  GOSUB 4500 : GOSUB 1000 : IF AB = 1 THEN 2040
  84. 2365  IF EOD = 1 AND PP = 0 THEN A$ = "     * NO ENTRIES *" : IF IO = 1 THEN PRINT A$ : :ELSE LPRINT A$
  85. 2370  IF EOD = 1 THEN 2410
  86. 2380  GOSUB 6000 : PP = 1 : GOSUB 1000 : IF AB = 1 THEN 2040
  87. 2390  IF IO = 1 THEN CNT = CNT + 1 : IF CNT > 14 THEN GOSUB 1500 : GOTO 2340 : :ELSE 2360
  88. 2400  IF PEEK (16425) > 62 THEN LPRINT CHR$ (12) : GOTO 2340 : :ELSE 2360
  89. 2410  IF IO = 1 GOSUB 1500 : GOTO 2040
  90. 2420  LPRINT CHR$ (12) : GOTO 2040
  91. 3000  POKE 16424,67 : POKE 16425,1 : PG = 0 : CNT = 0 : EOD = 0 : KK = 0 : AB = 0
  92. 3010  ON TY GOTO 3011,3012,3013,3014,3015,3016
  93. 3011  H$ = "ACCOUNTS" : GOTO 3020
  94. 3012  H$ = "OUTSTANDING CHECKS" : GOTO 3020
  95. 3013  H$ = "CANCELLED CHECKS" : GOTO 3020
  96. 3014  H$ = "CASH EXPENSES" : GOTO 3020
  97. 3015  H$ = "DEPOSITS" : GOTO 3020
  98. 3016  H$ = "SAVINGS"
  99. 3020  IF IO = 2 THEN 3100
  100. 3030  IF TY < > 1 THEN 3060
  101. 3040  T$ = "   NO.       NAME                 CURRENT    BUDGET   REMAINING
  102. 3050  F$ = " ##### %                      %  #####.##  #####.##   #####.##-" : RETURN 
  103. 3060  T$ = "DATE         DESCRIPTION           AMOUNT" : F$ = "##/##     %                  %  ######.##-
  104. 3070  IF TY > 1 AND TY < 4T$ = "  NO.     " + T$ : F$ = "######    " + F$ : :ELSE T$ = STRING$ (10," ") + T$ : F$ = STRING$ (10," ") + F$
  105. 3080  IF TY > 1 AND TY < 5T$ = T$ + "   EXP. ACCT" : F$ = F$ + "  ######"
  106. 3090  IF TY = 3 THEN T$ = "  NO.   WRTN   CAN      DESCRIPTION           AMOUNT  EXP. ACCT" : F$ = "######  ##/## ##/##  %                  %  ######.##   ######" : RETURN :ELSE RETURN 
  107. 3100  IF TY < > 1 THEN 3130
  108. 3110  T$ = "  ACCOUNT        NAME                      CURRENT        BUDGET               PERCENT    REMAINING
  109. 3120  F$ = "   ##### %                            %  ###,###.##    ###,###.##             #####.##   ###,###.##-" : RETURN 
  110. 3130  T$ = "DATE            DESCRIPTION                      AMOUNT
  111. 3135  F$ = "##/##       %                          %      ###,###.##-
  112. 3140  IF TY > 1 AND TY < 4 THEN T$ = "  NUMBER       " + T$ : F$ = "  ######       " + F$ : :ELSE T$ = STRING$ (15," ") + T$ : F$ = STRING$ (15," ") + F$
  113. 3150  IF TY > 1 AND TY < 5T$ = T$ + "       EXPENSE" : F$ = F$ + "      #####
  114. 3160  IF TY = 3 THEN T$ = T$ + "      CANCELLED" : F$ = F$ + "         ##/##" : RETURN :ELSE RETURN 
  115. 3500  PG = PG + 1 : IF IO = 2 THEN 3530
  116. 3510  CLS : D = DT : GOSUB 500 : PRINT USING "BUDGET MANAGEMENT :  %                  %  PAGE ##  DATE ##/##/##";H$;PG;D1;D2;D3
  117. 3520  GOSUB 1000 : IF AB = 1 THEN RETURN :ELSE PRINT T$ : CNT = 2 : RETURN 
  118. 3530  GOSUB 3900 : LPRINT TAB( 40);"BUDGET MANAGEMENT REPORT" + STRING$ (25," "); : LPRINT USING "PAGE ##";PG
  119. 3540  LPRINT TAB( 40)"** "H$" REPORT **" : LPRINT TAB( 45)"DATE :  "; : D = DT : GOSUB 500 : LPRINT USING "##/##/##";D1;D2;D3
  120. 3550  GOSUB 1000 : IF AB = 1 THEN RETURN :ELSE GOSUB 3910 : LPRINT T$ : FOR I = 1 TO LEN (T$) : IF MID$ (T$,I,1) = " " THEN LPRINT " "; : :ELSE LPRINT "=";
  121. 3560  NEXT : LPRINT " " : RETURN 
  122. 3900  LPRINT STRING$ (110,"-")
  123. 3910  FOR DY = 1 TO 2 : LPRINT " " : NEXT : RETURN 
  124. 4500  EOD = 0 : KK = KK + 1 : ON TY GOTO 4540,4600,4680,4690,4740,4780
  125. 4510  EOD = 1 : RETURN 
  126. 4540  C$ = A2$(KK) : IF KK > K1 THEN 4510 :ELSE IF LK = 7 THEN 4580 :ELSE ON LK GOTO 4510,4510,4550,4510,4560,4570
  127. 4550  K = ABS (A1%(KK)) : IF K < INT (R1) OR K > INT (R2) THEN 4500 :ELSE 4580
  128. 4560  IF R$ < > C$ THEN 4500 :ELSE 4580
  129. 4570  R = CSNG (A3#(KK)) : IF R < R1 OR R > R2 THEN 4500 :ELSE 4580
  130. 4580  IF A4#(KK) = 0
  131.